package com.ctshk.rpc.guide.service;


import com.ctshk.common.dto.Result;
import com.ctshk.common.model.PageResponse;
import com.ctshk.common.model.TokenUser;
import com.ctshk.rpc.guide.dto.GuideCollarExcelDTO;
import com.ctshk.rpc.guide.dto.GuideCollarListDTO;
import com.ctshk.rpc.guide.dto.GuideCollarQueryDTO;
import com.ctshk.rpc.guide.req.*;

import java.util.List;

/**
 * <p>
 * 导领信息表 服务类
 * </p>
 *
 * @author 谢诗宏
 * @since 2021-02-25
 */
public interface IGuideCollarService {

    /**
     * 新增导领信息
     * @param req
     * @param tokenUser
     * @return
     */
    Result add(GuideCollarAddReq req, TokenUser tokenUser);

    /**
     * 查看导领信息列表
     * @param req
     * @return
     */
    PageResponse<GuideCollarListDTO> list(GuideCollarListReq req);

    /**
     * 查看导领信息
     * @param req
     * @return
     */
    GuideCollarQueryDTO query(GuideCollarQueryReq req);

    /**
     * 修改导领信息
     * @param req
     * @param tokenUser
     * @return
     */
    Result update(GuideCollarUpdateReq req, TokenUser tokenUser);

    /**
     * 转入分社(定时任务)
     * @return
     */
    Result updateTransferAgency();

    /**
     * 升值或离职(定时任务)
     * @return
     */
    Result topAndBottomTransferAgency();

    /**
     * 合约岛检查(定时任务)
     * @return
     */
    Result examineContractExpired();

    /**
     * 假期统计(定时任务-月假期计算每月一号计算)
     * @return
     */
    Result vacationStatistics();

    /**
     * 导领证件到期提醒 - 到期修改状态为失效(定时任务)
     * @return
     */
    Result examineTransferAgency();

    /**
     * 修改导领信息其他信息
     * @param req
     * @param tokenUser
     * @return
     */
    Result updateInfo(GuideCollarUpdateInfoReq req, TokenUser tokenUser);

    /**
     * 导出导领信息表
     * @param req
     * @return
     */
    List<GuideCollarExcelDTO> selectListByIds(GuideCollarQueryExcelReq req);
}
